package com.ht.utils.utils;

public final class ProductNumFormat {

    private int abstractNumId  = -1;
    private StringBuffer xml_abstractNum = new StringBuffer();
    private StringBuffer xml_num = new StringBuffer();

    public int getNewNumId(String oldNumId){
        String[] params = oldNumId.split("-");
        abstractNumId = abstractNumId + 1;
        switch (Integer.parseInt(params[0])){
            case 0:
                xml_abstractNum.append("    <w:abstractNum w:abstractNumId=\"")
                        .append(abstractNumId).append("\">\n")
                        .append("        <w:multiLevelType w:val=\"singleLevel\"/>\n")
                        .append("        <w:lvl w:ilvl=\"0\" w:tentative=\"0\">\n")
                        .append("            <w:start w:val=\"1\"/>\n")
                        .append("            <w:numFmt w:val=\"decimal\"/>\n")
                        .append("            <w:lvlText w:val=\"%1)\"/>\n")
                        .append("            <w:lvlJc w:val=\"left\"/>\n")
                        .append("            <w:pPr>\n")
                        .append("                <w:ind w:left=\"425\" w:hanging=\"425\"/>\n")
                        .append("            </w:pPr>\n")
                        .append("            <w:rPr>\n")
                        .append("                <w:rFonts w:hint=\"default\"/>\n")
                        .append("            </w:rPr>\n")
                        .append("        </w:lvl>\n")
                        .append("    </w:abstractNum>");
                break;
            case 1:
                xml_abstractNum.append("<w:abstractNum w:abstractNumId=\"")
                        .append(abstractNumId).append("\">\n")
                        .append("        <w:multiLevelType w:val=\"singleLevel\"/>\n")
                        .append("        <w:lvl w:ilvl=\"0\" w:tentative=\"0\">\n")
                        .append("            <w:start w:val=\"1\"/>\n")
                        .append("            <w:numFmt w:val=\"lowerLetter\"/>\n")
                        .append("            <w:lvlText w:val=\"%1.\"/>\n")
                        .append("            <w:lvlJc w:val=\"left\"/>\n")
                        .append("            <w:pPr>\n")
                        .append("                <w:ind w:left=\"425\" w:hanging=\"425\"/>\n")
                        .append("            </w:pPr>\n")
                        .append("            <w:rPr>\n")
                        .append("                <w:rFonts w:hint=\"default\"/>\n")
                        .append("            </w:rPr>\n")
                        .append("        </w:lvl>\n")
                        .append("    </w:abstractNum>");
                break;
            case 3:
                xml_abstractNum.append("<w:abstractNum w:abstractNumId=\"")
                        .append(abstractNumId).append("\">\n")
                        .append("        <w:multiLevelType w:val=\"singleLevel\"/>\n")
                        .append("        <w:lvl w:ilvl=\"0\" w:tentative=\"0\">\n")
                        .append("            <w:start w:val=\"1\"/>\n")
                        .append("            <w:numFmt w:val=\"chineseCounting\"/>\n")
                        .append("            <w:suff w:val=\"nothing\"/>\n")
                        .append("            <w:lvlText w:val=\"（%1）\"/>\n")
                        .append("            <w:lvlJc w:val=\"left\"/>\n")
                        .append("            <w:pPr>\n")
                        .append("                <w:ind w:left=\"0\" w:firstLine=\"420\"/>\n")
                        .append("            </w:pPr>\n")
                        .append("            <w:rPr>\n")
                        .append("                <w:rFonts w:hint=\"eastAsia\"/>\n")
                        .append("            </w:rPr>\n")
                        .append("        </w:lvl>\n")
                        .append("    </w:abstractNum>");
                break;
            case 2:
                xml_abstractNum.append("<w:abstractNum w:abstractNumId=\"")
                        .append(abstractNumId).append("\">\n")
                        .append("        <w:multiLevelType w:val=\"singleLevel\"/>\n")
                        .append("        <w:lvl w:ilvl=\"0\" w:tentative=\"0\">\n")
                        .append("            <w:start w:val=\"1\"/>\n")
                        .append("            <w:numFmt w:val=\"decimal\"/>\n")
                        .append("            <w:lvlText w:val=\"%1.\"/>\n")
                        .append("            <w:lvlJc w:val=\"left\"/>\n")
                        .append("            <w:pPr>\n")
                        .append("                <w:ind w:left=\"425\" w:hanging=\"425\"/>\n")
                        .append("            </w:pPr>\n")
                        .append("            <w:rPr>\n")
                        .append("                <w:rFonts w:hint=\"default\"/>\n")
                        .append("            </w:rPr>\n")
                        .append("        </w:lvl>\n")
                        .append("    </w:abstractNum>");
                break;
            case 6:
                xml_abstractNum.append("<w:abstractNum w:abstractNumId=\"")
                        .append(abstractNumId).append("\">\n")
                        .append("        <w:multiLevelType w:val=\"singleLevel\"/>\n")
                        .append("        <w:lvl w:ilvl=\"0\" w:tentative=\"0\">\n")
                        .append("            <w:start w:val=\"1\"/>\n")
                        .append("            <w:numFmt w:val=\"decimal\"/>\n")
                        .append("            <w:lvlText w:val=\"(%1)\"/>\n")
                        .append("            <w:lvlJc w:val=\"left\"/>\n")
                        .append("            <w:pPr>\n")
                        .append("                <w:ind w:left=\"425\" w:hanging=\"425\"/>\n")
                        .append("            </w:pPr>\n")
                        .append("            <w:rPr>\n")
                        .append("                <w:rFonts w:hint=\"default\"/>\n")
                        .append("            </w:rPr>\n")
                        .append("        </w:lvl>\n")
                        .append("    </w:abstractNum>");
                break;
            case 7:
                xml_abstractNum.append("<w:abstractNum w:abstractNumId=\"")
                        .append(abstractNumId).append("\">\n")
                        .append("        <w:multiLevelType w:val=\"singleLevel\"/>\n")
                        .append("        <w:lvl w:ilvl=\"0\" w:tentative=\"0\">\n")
                        .append("            <w:start w:val=\"1\"/>\n")
                        .append("            <w:numFmt w:val=\"upperLetter\"/>\n")
                        .append("            <w:lvlText w:val=\"%1.\"/>\n")
                        .append("            <w:lvlJc w:val=\"left\"/>\n")
                        .append("            <w:pPr>\n")
                        .append("                <w:ind w:left=\"425\" w:hanging=\"425\"/>\n")
                        .append("            </w:pPr>\n")
                        .append("            <w:rPr>\n")
                        .append("                <w:rFonts w:hint=\"default\"/>\n")
                        .append("            </w:rPr>\n")
                        .append("        </w:lvl>\n")
                        .append("    </w:abstractNum>");
                break;
            case 8:
                xml_abstractNum.append("<w:abstractNum w:abstractNumId=\"")
                        .append(abstractNumId).append("\">\n")
                        .append("        <w:multiLevelType w:val=\"singleLevel\"/>\n")
                        .append("        <w:lvl w:ilvl=\"0\" w:tentative=\"0\">\n")
                        .append("            <w:start w:val=\"1\"/>\n")
                        .append("            <w:numFmt w:val=\"chineseCounting\"/>\n")
                        .append("            <w:suff w:val=\"nothing\"/>\n")
                        .append("            <w:lvlText w:val=\"%1、\"/>\n")
                        .append("            <w:lvlJc w:val=\"left\"/>\n")
                        .append("            <w:pPr>\n")
                        .append("                <w:ind w:left=\"0\" w:firstLine=\"420\"/>\n")
                        .append("            </w:pPr>\n")
                        .append("            <w:rPr>\n")
                        .append("                <w:rFonts w:hint=\"eastAsia\"/>\n")
                        .append("            </w:rPr>\n")
                        .append("        </w:lvl>\n")
                        .append("    </w:abstractNum>");
                break;
            case 4:
                xml_abstractNum.append("  <w:abstractNum w:abstractNumId=\"")
                        .append(abstractNumId).append("\">\n")
                        .append("    <w:multiLevelType w:val=\"singleLevel\"/>\n")
                        .append("    <w:lvl w:ilvl=\"0\" w:tentative=\"0\">\n")
                        .append("      <w:start w:val=\"1\"/>\n")
                        .append("      <w:numFmt w:val=\"bullet\"/>\n")
                        .append("      <w:lvlText w:val=\"\uF06C\"/>\n")
                        .append("      <w:lvlJc w:val=\"left\"/>\n")
                        .append("      <w:pPr>\n")
                        .append("        <w:ind w:left=\"420\" w:hanging=\"420\"/>\n")
                        .append("      </w:pPr>\n")
                        .append("      <w:rPr>\n")
                        .append("        <w:rFonts w:hint=\"default\" w:ascii=\"Wingdings\" w:hAnsi=\"Wingdings\"/>\n")
                        .append("      </w:rPr>\n")
                        .append("    </w:lvl>\n")
                        .append("  </w:abstractNum>");
                break;
            case 5:
                xml_abstractNum.append(" <w:abstractNum w:abstractNumId=\"")
                        .append(abstractNumId).append("\">\n")
                        .append("    <w:multiLevelType w:val=\"singleLevel\"/>\n")
                        .append("    <w:lvl w:ilvl=\"0\" w:tentative=\"0\">\n")
                        .append("      <w:start w:val=\"1\"/>\n")
                        .append("      <w:numFmt w:val=\"bullet\"/>\n")
                        .append("      <w:lvlText w:val=\"\uF06E\"/>\n")
                        .append("      <w:lvlJc w:val=\"left\"/>\n")
                        .append("      <w:pPr>\n")
                        .append("        <w:ind w:left=\"420\" w:hanging=\"420\"/>\n")
                        .append("      </w:pPr>\n")
                        .append("      <w:rPr>\n")
                        .append("        <w:rFonts w:hint=\"default\" w:ascii=\"Wingdings\" w:hAnsi=\"Wingdings\"/>\n")
                        .append("      </w:rPr>\n")
                        .append("    </w:lvl>\n")
                        .append("  </w:abstractNum>");
                break;
        }
        xml_num.append("<w:num w:numId=\"").append(abstractNumId + 1)
                .append("\">\n").append("        <w:abstractNumId w:val=\"")
                .append(abstractNumId).append("\"/>\n").append("    </w:num>");
        return abstractNumId + 1;
    }

    public String getNumberXml(){
        return "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n" +
                "<w:numbering\n" +
                "    xmlns:wpc=\"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas\"\n" +
                "    xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\"\n" +
                "    xmlns:o=\"urn:schemas-microsoft-com:office:office\"\n" +
                "    xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\"\n" +
                "    xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\"\n" +
                "    xmlns:v=\"urn:schemas-microsoft-com:vml\"\n" +
                "    xmlns:wp14=\"http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing\"\n" +
                "    xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\"\n" +
                "    xmlns:w10=\"urn:schemas-microsoft-com:office:word\"\n" +
                "    xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\"\n" +
                "    xmlns:w14=\"http://schemas.microsoft.com/office/word/2010/wordml\"\n" +
                "    xmlns:wpg=\"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup\"\n" +
                "    xmlns:wpi=\"http://schemas.microsoft.com/office/word/2010/wordprocessingInk\"\n" +
                "    xmlns:wne=\"http://schemas.microsoft.com/office/word/2006/wordml\"\n" +
                "    xmlns:wps=\"http://schemas.microsoft.com/office/word/2010/wordprocessingShape\" mc:Ignorable=\"w14 wp14\">"
                + xml_abstractNum + xml_num + "</w:numbering>";
    }

}
